package cn.dengta.webapp.ai.service;

import java.io.IOException;

import cn.dengta.context.model.WesKit;
import cn.dengta.webapp.ai.cache.AiSummary;
import cn.dengta.webapp.ai.model.*;
import cn.dengta.webapp.user.model.UserSketch;

public interface AIGCService {

	/**
	 * @param ai ai
	 * @param user 用户
	 * @param msg 消息 可空，为空时仍然返回 AI回复
	 * @param memory 记忆，可以为空，会自动处理并替换消息中的称呼
	 * @param glyph 返回格式限制，可以为空
	 */
	AIGCMessage chat(AiSummary ai, UserSketch user, AIGCMessage msg, AIGCMessages memory, Glyph glyph);

	AIGCMessage chat(AiSummary ai, UserSketch user, AIGCMessage msg, AIGCMessages memory);

	AIGCMessage chat(AiSummary ai, UserSketch user, AIGCMessage msg);

	/**
	 * 生成文本，如人物介绍
	 */
	String generateText(DefaultAI defaultAI, String... param);

	/**
	 * 快捷回复
	 */
	FastReply fastReply(AiSummary ai, UserSketch user, AIGCMessages memory, String... param);

	AIGCT2AResult t2a(AIGCVoice voice, WesKit wesKit, boolean forceUrl) throws IOException;
	AIGCT2AResult t2a(AIGCVoice voice, WesKit wesKit) throws IOException;


}
